package br.com.sipe.bean;

import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.arquitetura.bean.PaginableBean;
import br.com.arquitetura.excecao.ExcecaoUtil;
import br.com.arquitetura.util.FacesMessagesUtil;
import br.com.sipe.entidade.Empresa;
import br.com.sipe.util.Constantes;

@ManagedBean
@ViewScoped
public class EmpresaBean extends PaginableBean<Empresa> {

	private static final long serialVersionUID = 1L;

	public EmpresaBean() {
	}

	@Override
	public void verificarAcesso() {
		// TODO Auto-generated method stub

	}

	@Override
	public String save() {
		try {
			if (getModel().getDescricao() == null || getModel().getDescricao().isEmpty()) {
				FacesMessagesUtil.addErrorMessage("Descrição ", Constantes.CAMPO_OBRIGATORIO);
				return ERROR;
			}
			Empresa areaAtuacao = new Empresa();
			areaAtuacao.setDescricao(getModel().getDescricao().trim());
			List<Empresa> lista = universalManager.listBy(areaAtuacao, true);
			if (lista != null && !lista.isEmpty()) {
				FacesMessagesUtil.addErrorMessage("Descrição ", " já cadastrada.");
				return ERROR;
			}
			return super.save();
		} catch (Exception e) {
			ExcecaoUtil.tratarExcecao(e);
		}

		return SUCCESS;

	}

	@Override
	public Empresa createModel() {
		return new Empresa();
	}

	@Override
	public String getQualifiedName() {
		return "Empresa";
	}

	@Override
	public boolean isFeminino() {
		return false;
	}

	@Override
	public Map<String, String> getFilters() {
		return null;
	}

}
